package net.sansi.v3correctserver.service.show;

import net.sansi.v3correctserver.dto.v3serverapi.V3ServerCorrectDto;
import net.sansi.v3correctserver.entity.screen.CorrectArea;
import net.sansi.v3correctserver.entity.space.CorrectCnf;
import org.springframework.stereotype.Service;

/**
 * Created by Fang
 * create time : 2024/11/1
 * IDE : IntelliJ IDEA
 * <p>
 * 打屏服务实现
 */

@Service
public interface ShowService {

    V3ServerCorrectDto.HardwarePreviewEnable hardwarePreviewEnable(String screenId);

    /**
     * 打屏
     *
     * @param area     区域
     * @param bright   亮度
     * @param colorIdx 颜色索引
     * @param mode     打屏模式
     *                 参考 {@link CorrectCnf#SHOW_MODE_AUTO}
     * @param span     隔点数量
     * @param ofx      偏移量 x
     * @param ofy      偏移量 y
     */
    ShowClose show(CorrectArea area, int bright, int colorIdx, int mode, int span, int ofx, int ofy);

    /**
     * 打屏
     * 1. 隔点和模式根据项目配置自动填充
     *
     * @param area     区域
     * @param bright   亮度
     * @param colorIdx 颜色索引
     * @param ofx      偏移量 x
     * @param ofy      偏移量 y
     */
    ShowClose show(CorrectArea area, int bright, int colorIdx, int ofx, int ofy);

    /**
     * 打屏黑屏
     * 用于拍摄黑屏背景照片
     */
    ShowClose showBlack();

    void closeDisplay();

    /**
     * 关闭打屏
     */
    public interface ShowClose {
        void close();
    }
}
